/*****************************************************************
 Jorge Lainfiesta                Carné 11142
 Rodrigo Medrano                 Carné 11222
 Luis Fernando Valdeavellano     Carné 11218
 Sección 21
 
 Avion.java
*****************************************************************/

public class Avion{
    
    private boolean vuelaInternacional;
    private int asientosPrimera;
    private int asientosEjecutiva;
    private int asientosTurista;
    private String id;
    
    //Constructor. Recibe atributos para asignarlos al objeto.
    public Avion(String id, boolean internacional, int primera, int ejecutiva, int turista){
       this.id = id;
        this.vuelaInternacional = internacional;
       this.asientosPrimera = primera;
       this.asientosEjecutiva = ejecutiva;
       this.asientosTurista = turista;
    }

    public Avion(String id){
        this.id = id;
    }

    public boolean vuelaInternacional() {
        return vuelaInternacional;
    }

    public void setInternacional(boolean vuelaInternacional) {
        this.vuelaInternacional = vuelaInternacional;
    }

    //Compara si son iguales tomando en cuenta únicamente el ID
    public boolean equals(Object obj){
        Avion o = (Avion) obj;
        if(this.getId() == o.getId())
            return true;
        else
            return false;
    }

    //Recibe un String con el nombre de la clase de asito que se ocupa. Retorna false si ya no hay lugares, true si se logró.
    public boolean ocuparAsiento(String clase){
        int disponibles = 0;
        if(clase.equals("Primera")){
            disponibles = this.asientosPrimera;
            if(disponibles>0){
                this.asientosPrimera-=1;
                return true;
            }
        }
        if(clase.equals("Ejecutiva")){
            disponibles = this.asientosEjecutiva;
            if(disponibles>0){
                this.asientosEjecutiva-=1;
                return true;
            }
        }
        if(clase.equals("Turista")){
            disponibles = this.asientosTurista;
            if(disponibles>0){
                this.asientosTurista-=1;
                return true;
            }
        }
        return false;
        
    }

    /**
     * @return the asientosPrimera
     */
    public int getAsientosPrimera() {
        return asientosPrimera;
    }

    /**
     * @param asientosPrimera the asientosPrimera to set
     */
    public void setAsientosPrimera(int asientosPrimera) {
        this.asientosPrimera = asientosPrimera;
    }

    /**
     * @return the asientosEjecutiva
     */
    public int getAsientosEjecutiva() {
        return asientosEjecutiva;
    }

    /**
     * @param asientosEjecutiva the asientosEjecutiva to set
     */
    public void setAsientosEjecutiva(int asientosEjecutiva) {
        this.asientosEjecutiva = asientosEjecutiva;
    }

    /**
     * @return the asientosTurista
     */
    public int getAsientosTurista() {
        return asientosTurista;
    }

    /**
     * @param asientosTurista the asientosTurista to set
     */
    public void setAsientosTurista(int asientosTurista) {
        this.asientosTurista = asientosTurista;
    }

    /**
     * @return the id
     */
    public String getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(String id) {
        this.id = id;
    }
  
}